#pragma once

template <typename T>
class Factory
{
public:
	T* create_instance() const
	{
		return new T();
	}

	typedef T value_type;

	virtual const char* signature() const = 0;
};



